Estoy resolviendo la siguientepregunta de leetcode y tengo la solución a continuación
const twoSum = (numbers, target) => { let map = {} let result = [] for (let i = 0; i < numbers.length; i++) { let complement = target - numbers[i] if (map[complement] === undefined) { map[numbers[i]] = i } else { result[0] = map[complement] + 1 result[1] = i + 1 } } return result }; Si reemplazo map[complement] === undefined con !map[complement] , devuelvo una matriz vacía. En mi mente, ambos deberían devolver true . ¿Por qué este último rompe mi código?
map[complement] === undefined solo se vuelve true cuando no hay ningún elemento con la clave igual a complement mientras que !map[complement] se vuelve true en todos los casos en que su resultado es un valor falso .
Los valores falsos incluyen, entre otros, "" , false , undefined , null , 0 , -0 , etc.
En otras palabras, el primer caso es un subconjunto del segundo.